ElasticSearch相似度匹配及分词器选择

您所在的位置:网站首页 elasticsearch 正则查询 ElasticSearch相似度匹配及分词器选择

ElasticSearch相似度匹配及分词器选择

2024-07-17 15:35:27| 来源: 网络整理| 查看: 265

目录

ES核心相似度匹配逻辑:

分词器选择:

IK 分词器

分词器使用演示:

ik分词器最佳实践:

使用minimum_should_match

正向匹配度-使用个数

正向匹配度-使用百分比

逆向匹配

组合匹配(Combination)

ES核心相似度匹配逻辑:

ES的核心相似度匹配逻辑,或者匹配目的,可以不是很严谨的用以下两句话承载。

局部常见:该单词在文档中多次出现全局罕见:该单词在语料库中出现的次数并不多。

详见:Elasticsearch中的相似度评分机制_chenxy02的博客-CSDN博客_elasticsearch 相似度

分词器选择:

ES相似度匹配的结果与所选择的分词器类别息息相关,常见的分词器如下:

Standard:单字切分法,一个字(对于英文为一个单词)切分成一个词,ES默认内置分词器。CJKAnalyzer: 二元切分法, 把相邻的两个字, 作为一个词。SmartChineseAnalyzer: 对中文支持较好, 但是扩展性差, 针对扩展词库、停用词均不好处理。Whitespace分词器:去除空格,不支持中文,对生成的词汇单元不进行其他标准化处理。language分词器:特定语言的分词器,不支持中文。IK-analyzer: 在做中文搜索时,最受欢迎的分词器,支持自定义词库。 IK 分词器

IK分词器有两种分词模式:ik_max_word和ik_smart模式。

1、ik_max_word

会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国、中华人民、中华、华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。

2、ik_smart

会做最粗粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为中华人民共和国、人民大会堂。

分词器使用演示:

使用es内置standard分词算法:

使用ik_max_word分词算法:

使用ik_smart分词算法:

ik分词器最佳实践:

关于做中文检索时,使用分词器的最佳实践业界有两种说法:

1、索引时用ik_max_word,在搜索时用ik_smart。即:索引时最大化的将文章内容分词,搜索时更精确的搜索到想要的结果。

2、创建mapping时指定分词器和查询事指定的分词器,保持一致。

使用minimum_should_match

这一部分我们使用的实验数据为:

POST similarity-score/_doc/_bulk {"index":{}} {"text":"what is your birthday"} {"index":{}} {"text":"nothing is impossible"} {"index":{}} {"text":"Blue sky"} {"index":{}} {"text":"good morning"}

ElasticSearch query中的minimum_should_match,最小匹配度。它有很多种配置方式。

正向匹配度-使用个数

比如 "minimum_should_match":3 官方原文解释是:Indicates a fixed value regardless of the number of optional clauses。

这里要说明一下为什么是optional clauses(翻译为可选的子句),因为对于被analyzer分解出来的每一个term都会构造成一个should的bool query的查询,每个term变成一个term query子句。

比如 "query": "what is your",会被解析成:

{    "bool": {      "should": [        { "term": { "body": "what"}},        { "term": { "body": "is"}},        { "term": { "body": "your"}}     ],      "minimum_should_match": 3    }  } 

不使用  "minimum_should_match"的情况:

使用 "minimum_should_match:2"的情况:

正向匹配度-使用百分比

比如"minimum_should_match":75%,可以配置一个一个百分比,至少optional clauses至少满足75%,这里是向下取整的。  比如有5个clause,5*75%=3.75,向下取整为3,也就是至少需要match 3个clause。 

注意:由于是向下取整,所以尤其针对短的query,我们把"minimum_should_match"设为大于100% 还是可以得到结果(如下,130*3=3.90,向下取整为3)

逆向匹配

逆向匹配和正向匹配相反,比如我们可以近似理解为-25%和75%表示的是一个意思,但是有些小小的差异,比如有5个clause,逆向匹配-25%,5*25%=1.25,取整是1,5-1=4,即要匹配4个clause,而75%算出来是3个clause。 

组合匹配(Combination)

比如,"minimum_should_match": 3



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭